package cn.tedu.egcar1.base.response;


import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;

@Setter
@Getter
//@NoArgsConstructor//无参构造
@AllArgsConstructor//全参构造
public class JsonResult {

    private Integer status;//状态码
    private String message;//提示消息
    private Object data; //具体数据

    //没有数据返回的构造方法，不需要data参数
    /**
    public JsonResult (Integer status, String message){
        this.status=status;
        this.message=message;
    }*/

    /**
     * 第一个构造方法：针对于没有具体数据返回的控制器方法，比如：添加咨询、删除咨询、修改咨询
     */
    public JsonResult(StatusCode statusCode){
        this.status=statusCode.getStatus();
        this.message=statusCode.getMessage();
    }


    /**
     * 第二个构造方法：针对有具体数据返回的控制器方法，比如查询列表、查询详情等
     */
    public JsonResult(StatusCode statusCode, Object data){
        this.status=statusCode.getStatus();
        this.message=statusCode.getMessage();
        this.data=data;
    }


    /**
     * 封装两个静态方法，返回操作成功的JsonResult对象
     * 1.针对没有具体数据返回的操作成功的方法
     * 2.针对有具体数据返回的操作成功方法
     */

    public static JsonResult OK(){
        return new JsonResult(StatusCode.OPERATION_SUCCESS);
    }
    public static JsonResult OK(Object data){
        return new JsonResult(StatusCode.OPERATION_SUCCESS,data);
    }

}
